#ifndef INTERBOURSIER_
#define INTERBOURSIER_

#include "casual_includes.h"
#include "../libbourse/alea.h"
#include "../libcomm/logger.h"
#include "../libcomm/message.h"
#include "../libcomm/communication.h"
#define NB_BOURSES 25

typedef struct {
	int id_bourse[NB_BOURSES];
	int port_bourse[NB_BOURSES];
}id2port;

/**
 * Permet de démarrer un serveur interboursier
 * @param mdl module lié au serveur interboursier
 * @param port port sur lequel le serveur se bind
 * ATTENTION: le port du serveur d'exécution doit être celui de son serveur interboursier+1
 */
void launch_interboursier(module* mdl, const int port);


int interboursier_msg(msg *mess);

/**
 * Interboursier reçoit des messages et les analyse afin de savoir vers quel serveur d'acquisition les diriger.
 */
int interboursier(char* emetteur,char* type_transaction,char* id_action_ordre,char* quantite_ordre);

/**
 * Permet de récupérer un socket descriptor à partir de l'identifiant d'une bourse
 */
int route(id2port* tbl, int id);
/**
 * Permet d'ajouter un serveur à la table de routage
 */
int add_route(id2port* tbl, int id, int port);
#endif /*INTERBOURSIER_*/
